package com.chixing.config;

import io.minio.MinioClient;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
@ConfigurationProperties(prefix = "minio")// 指定从配置文件中读取以"minio"为前缀的属性配置
@Data //Lombok注解,自动生成getter,setter,toString,equals,hashCode等方法
public class MinioConfig {
    /**
     * MinIO服务端点URL
     * 对应配置文件中的 minio.endpoint 属性
     * 例如：http://localhost:9000
     */
    private String endpoint;
    /**
     * MinIO访问密钥（Access Key）
     * 对应配置文件中的 minio.access-key 属性
     * 用于身份验证的用户名
     */
    private String accessKey;
    /**
     * MinIO秘密密钥（Secret Key）
     * 对应配置文件中的 minio.secret-key 属性
     * 用于身份验证的密码
     */
    private String secretKey;

    /**
     * MinIO存储桶名称
     * 对应配置文件中的 minio.bucket 属性
     * 指定文件存储的桶名称
     */
    private String bucket;
    @Bean
    public MinioClient minioClient() {
        //使用Builder模式构建MinioClient实例
        return MinioClient.builder()
                .endpoint(endpoint)  //设置MinIO服务器端点地址
                .credentials(accessKey, secretKey) //设置访问凭证(用户名和密码)
                .build(); //构建并返回配置好的MinioClient实例
    }
}
